/*
	同步、异步、简单文件的写入都不适合大文件的写入，性能较差，容易导致内存溢出
	往一个文件中写入大量数据时，最好的方法之一是使用流。
	若要将数据异步传送到文件，首需要使用以下语法创建一个Writable对象：
	– fs.createWriteStream(path[, options])
		path 文件路径
		options {encoding:"",mode:"",flag:""}
	一旦打开了Writable文件流，就可以使用write()方法来写入它，写入完成后，再调用end()方法来关闭流。
 */


//流式文件写入
var fs = require("fs");
//创建一个可写流(hello4.txt文件不存在则自动创建)
var ws = fs.createWriteStream("hello4.txt");
//可以通过监听流的open和close事件来监听流的打开和关闭
/*
	on(事件字符串,回调函数)
		- 可以为对象绑定一个事件

	once(事件字符串,回调函数)
		- 可以为对象绑定一个一次性的事件，该事件将会在触发一次以后自动失效

* */
ws.once("open",function () {
    console.log("流打开了~~~");
});

ws.once("close",function () {
    console.log("流关闭了~~~");
});

//通过ws向文件中输出内容
ws.write("通过可写流写入文件的内容\r\n");
ws.write("今天天气真不错\r\n");
ws.write("锄禾日当午\r\n");
ws.write("红掌拨清清\r\n");
ws.write("清清真漂亮\r\n");


//关闭流
ws.end();